//=============================================================================
/**
 * @file	pokethlon_frame.h
 * @brief	ポケスロン
 * @date	2007.07.10
 */
//=============================================================================

#ifndef	__POKETHLON_FRAME_H__
#define	__POKETHLON_FRAME_H__

#include "common.h"
#include "system/procsys.h"
#include "savedata/savedata_def.h"

#define PKTHLN_EVT_MAX	(10)	//競技最大数

#define PKTHLN_EVT_MAX_COMM	(4)	//選出イベント数(通信)
#define PKTHLN_EVT_MAX_ALONE	( PKTHLN_EVT_MAX_COMM -1 )	//選出イベント数(非通信)
#define ENTRY_MAX	(3)


typedef enum {
	PKTHLN_EVT_DASH,	//ハードル
	PKTHLN_EVT_STEAL, 	//フラッグ
	PKTHLN_EVT_PUSH,	//サークル
	PKTHLN_EVT_BREAK,	//カワラ
	PKTHLN_EVT_CATCH,	//ＵＦＯ
	PKTHLN_EVT_JUMP,	//トランポリン
	PKTHLN_EVT_RUN,		//マラソン
	PKTHLN_EVT_DROP,	//レスリング
	PKTHLN_EVT_THROW,	//玉投げ
	PKTHLN_EVT_SHOT,	//シュート
	PKTHLN_EVT_NONE,
///	PKTHLN_EVT_DOUBLE,
}PKTHLN_EVT_CODE;		//競技コード

typedef enum {
	PKTHLN_GAME_ALONE,	//一人
	PKTHLN_GAME_COMM,	//通信
}PKTHLN_GAME_TYPE;

//ポケスロン/ポケモン選択互換ワーク
typedef struct POKETHLON_HEADER_tag
{
	SAVEDATA	*SaveData;			//セーブデータ
	PKTHLN_GAME_TYPE GameType;		//通信対戦か1人か
	u16 RetThlonPt;		//アプリから返るポケスロン買い物ポイント
	u16 RetScore;		//アプリから返るポケスロンスコア
	u8 CourseID;		//コースＩＤ
	u8 RetRank;			//アプリから返る最終的な順位	0〜3
	u8 RetExit;		//アプリを中止したか？
	u8 AllStar;		//オールスターフラグ
}POKETHLON_HEADER;

typedef struct PKTHPOKE_PARAM_tag
{
	u8 Power;
	u8 Speed;
	u8 Jump;
	u8 Stamina;
	u8 Technique;
	u8 Cell;
	u8 Hit;
	u8 Touch;
	u8 Shadow;
	u8 PowMin;
	u8 PowMax;
	u8 SpdMin;
	u8 SpdMax;
	u8 JmpMin;
	u8 JmpMax;
	u8 StmMin;
	u8 StmMax;
	u8 TeqMin;
	u8 TeqMax;
	u8 dummy;
}PKTHPOKE_PARAM;

#ifdef PM_DEBUG
typedef struct DEBUG_PKTHLN_WORK_tag
{
	BOOL Flg;
	int Evt[5];
	int Crs;
	int Spec[3][5];
	BOOL SpecFlg;
	BOOL AI_Stop;
	BOOL TimeInfinity;
	int EffortType;	// 努力賞
	BOOL EffortTypeFlg;
}DEBUG_PKTHLN_WORK;
#endif


extern PROC_RESULT PTFrame_Init(PROC * proc, int * seq);
extern PROC_RESULT PTFrame_Main(PROC * proc, int * seq);
extern PROC_RESULT PTFrame_End(PROC * proc, int * seq);

#endif //__POKETHLON_FRAME_H__

